<?php
/*
 * Copyright (c) 2011 Joao Paulo Cirino Silva de Novais <joaopaulonovais@gmail.com>
 *
 */

class EscolaDAO extends DAO {

	static function inserir(Model $escola) {

        $sql = "insert into lcd_escola (nom_escola,
                                        nom_razao_social,
                                        num_cnpj,
                                        des_endereco,
                                        des_cidade,
                                        des_bairro,
                                        sig_uf,
                                        cep_escola,
                                        txt_observacao)
                                values (:nom_escola,
                                        :nom_razao_social,
                                        :num_cnpj,
                                        :des_endereco,
                                        :des_cidade,
                                        :des_bairro,
                                        :sig_uf,
                                        :cep_escola,
                                        :txt_observacao)";
        self::exec($sql, $escola);
        return self::lastInsertedId();
    }

    static function alterar(Model $escola) {

        $sql = "update lcd_escola
                   set nom_escola       = :nom_escola,
                       nom_razao_social = :nom_razao_social,
                       num_cnpj         = :num_cnpj,
                       des_endereco     = :des_endereco,
                       des_cidade       = :des_cidade,
                       des_bairro       = :des_bairro,
                       sig_uf           = :sig_uf,
                       cep_escola       = :cep_escola,
                       txt_observacao   = :txt_observacao
                where cod_escola = :cod_escola";

        return self::exec($sql, $escola);
    }

    static function remover(Model $escola) {

        $sql = "delete
                  from lcd_escola
                where cod_escola = :cod_escola";

        return self::exec($sql, $escola);
    }
    
    static function consultar(Model $escola) {

        $sql = "select e.*
                  from lcd_escola e
                     left outer join lcd_escola_perfil p
                        on e.cod_escola = p.cod_escola
                     left outer join lcd_escola_contato c
                        on e.cod_escola = p.cod_escola
                where 1=1";

        if ($escola->get("cod_escola")) {
            $sql .= " and e.cod_escola =  :cod_escola";
        }

        if ($escola->get("nom_escola")) {
            $sql .= " and nom_escola like :nom_escola";
            $escola->set("nom_escola", "%". $escola->get("nom_escola") . "%");
        }

        if ($escola->get("nom_razao_social")) {
            $sql .= " and nom_razao_social like :nom_razao_social";
            $escola->set("nom_razao_social", "%". $escola->get("nom_razao_social") . "%");
        }
        
        if ($escola->get("num_cnpj")) {
            $sql .= " and num_cnpj like :num_cnpj";
            $escola->set("num_cnpj", "%". $escola->get("num_cnpj") . "%");
        }

        if ($escola->get("des_endereco")) {
            $sql .= " and des_endereco like :des_endereco";
            $escola->set("des_endereco", "%". $escola->get("des_endereco") . "%");
        }

        if ($escola->get("des_cidade")) {
            $sql .= " and des_cidade like :des_cidade";
            $escola->set("des_cidade", "%". $escola->get("des_cidade") . "%");
        }

        if ($escola->get("des_bairro")) {
            $sql .= " and des_bairro like :des_bairro";
            $escola->set("des_bairro", "%". $escola->get("des_bairro") . "%");
        }
        
        if ($escola->get("sig_uf")) {
            $sql .= " and sig_uf = :sig_uf";
        }

        if ($escola->get("cep_escola")) {
            $sql .= " and cep_escola = :cep_escola";
        }

        if ($escola->get("perfis")) {
        	$perfis = implode(',', $escola->get("perfis"));
        	$sql .= " and p.cod_tipo_perfil in ($perfis)";
        }
        
        $sql .= " group by e.cod_escola, e.nom_escola, e.nom_razao_social, e.num_cnpj 
                  order by e.nom_escola";

        return self::query($sql, $escola);
    }
}

?>